<?php

namespace Models\Common;

use Models\Money_log;

/**
 * 金额日志形状
 * 使用者必须实现 :
 *  getMoneyType(): int
 *  getMoneyLogData(array $data): array
 */
trait MoneyLogTrait
{
    /* {@inheritDoc} */
	public function getMoneyType()
	{
		return static::getMoneyType();
	}

    /* {@inheritDoc} */
    public function saveMoneyLog($data = null)
    {
        $data =  $this->getMoneyLogData($data);
        $money_log = new Money_log();
        $money_log->load($data);

        return $money_log->add();
    }



    /* {@inheritDoc} */
    public function getMoneyLog($type = null)
    {
        return (new Money_log)->where([
            'type' => $type ?: $this->getMoneyType(),
            'relation_id' => $this['id'],
            ])->get_one_or_fail();
    }
}
